package com.ctshk.rpc.starvip.service;

import com.ctshk.common.dto.Result;
import com.ctshk.rpc.starvip.dto.UserMemberBasicInformationDTO;
import com.ctshk.rpc.starvip.dto.start_vip.transaction.LoyTransaction;
import com.ctshk.rpc.starvip.dto.start_vip.transaction.TrainIntegralDTO;
import com.ctshk.rpc.starvip.req.*;
import com.ctshk.rpc.starvip.req.transaction.StarVipTransactionIntegralReq;

import java.math.BigDecimal;

/**
 * @BelongsProject: ctshk-cloud
 * @BelongsPackage: com.ctshk.rpc.starvip.service
 * @Author: hef
 * @CreateTime: 2021-04-22 11:33
 * @Description: 描述
 */
public interface IStarVipBusinessService {
    /**
     * 获取会员基本信息
     *
     * @param req
     * @return
     */
    Result<UserMemberBasicInformationDTO> getUserMemberBasicInformation(UserMemberBasicInformationReq req);

    /**
     * 积分交易(验证密码)
     *
     * @param req
     * @return
     */
    Result transactionIntegral(TransactionIntegralReq req);

    /**
     * 积分交易(查询账号)
     *
     * @param req
     * @return
     */
    Result transaction(TransactionReq req);

    /**
     * 积分交易
     *
     * @param req
     * @return
     */
    Result transactionIntegralTwo(TransactionIntegralReq req);

    /**
     * 积分兑换港币,兑换使用CRM汇率
     *
     * @param point
     * @return
     */
    BigDecimal getHkd(Integer point);

    /**
     * 积分交易3
     *
     * @param req
     * @return
     */
    Result transactionIntegralThree(TransactionIntegralReq req);

    /**
     * 通用积分交易
     *
     * @param req
     * @return
     */
    Result<LoyTransaction> transactionIntegralCommon(TransactionIntegralCommonReq req);

    /**
     * 通用取消积分交易
     *
     * @param req
     * @return
     */
    Result<LoyTransaction> cancelTransactionIntegralCommon(TransactionIntegralCommonReq req);

    /**
     * 根据会员Id查询积分兑换港币,兑换使用CRM汇率
     *
     * @param memberId 会员Id
     * @param receivableAmount 应收金额
     * @return
     */
    BigDecimal getHkd(String memberId,BigDecimal receivableAmount);

    /**
     *  根据会员Id查询积分兑换港币,兑换使用CRM汇率
     *  會員积分,当前可用积分,积分抵扣金额,金额可获得积分
     */
    TrainIntegralDTO queryIntegralAndHkd(StarVipTransactionIntegralReq req);
}
